package com.hucsmn.phone;

/**
 * 上网套餐类。
 */
public class TrafficPlan extends Plan implements NetworkService {
    private long traffic;

    public TrafficPlan() {
    }

    public TrafficPlan(long traffic, double cost) {
        super(cost);
        setTraffic(traffic);
    }

    /**
     * 显示所有套餐信息。
     */
    @Override
    public void show() {
        System.out.println("上网流量 " + getTraffic() + "、每月资费 " + getCost());
    }

    /**
     * 实现上网服务，累加上网流量。
     *
     * @param traffic 本段时间使用的流量。
     * @param card    手机卡。
     */
    @Override
    public void accumulateTraffic(long traffic, Card card) {
        if (traffic < 0) {
            throw new IllegalArgumentException();
        }

        // 暂时不考虑计费问题。
        card.setTraffic(card.getTraffic() + traffic);
    }

    public long getTraffic() {
        return traffic;
    }

    public void setTraffic(long traffic) {
        if (traffic < 0) {
            throw new IllegalArgumentException();
        }
        this.traffic = traffic;
    }
}
